<?php
//
//    ______         ______           __         __         ______
//   /\  ___\       /\  ___\         /\_\       /\_\       /\  __ \
//   \/\  __\       \/\ \____        \/\_\      \/\_\      \/\ \_\ \
//    \/\_____\      \/\_____\     /\_\/\_\      \/\_\      \/\_\ \_\
//     \/_____/       \/_____/     \/__\/_/       \/_/       \/_/ /_/
//
//   上海商创网络科技有限公司
//
//  ---------------------------------------------------------------------------------
//
//   一、协议的许可和权利
//
//    1. 您可以在完全遵守本协议的基础上，将本软件应用于商业用途；
//    2. 您可以在协议规定的约束和限制范围内修改本产品源代码或界面风格以适应您的要求；
//    3. 您拥有使用本产品中的全部内容资料、商品信息及其他信息的所有权，并独立承担与其内容相关的
//       法律义务；
//    4. 获得商业授权之后，您可以将本软件应用于商业用途，自授权时刻起，在技术支持期限内拥有通过
//       指定的方式获得指定范围内的技术支持服务；
//
//   二、协议的约束和限制
//
//    1. 未获商业授权之前，禁止将本软件用于商业用途（包括但不限于企业法人经营的产品、经营性产品
//       以及以盈利为目的或实现盈利产品）；
//    2. 未获商业授权之前，禁止在本产品的整体或在任何部分基础上发展任何派生版本、修改版本或第三
//       方版本用于重新开发；
//    3. 如果您未能遵守本协议的条款，您的授权将被终止，所被许可的权利将被收回并承担相应法律责任；
//
//   三、有限担保和免责声明
//
//    1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的；
//    2. 用户出于自愿而使用本软件，您必须了解使用本软件的风险，在尚未获得商业授权之前，我们不承
//       诺提供任何形式的技术支持、使用担保，也不承担任何因使用本软件而产生问题的相关责任；
//    3. 上海商创网络科技有限公司不对使用本产品构建的商城中的内容信息承担责任，但在不侵犯用户隐
//       私信息的前提下，保留以任何方式获取用户信息及商品信息的权利；
//
//   有关本产品最终用户授权协议、商业授权与技术服务的详细内容，均由上海商创网络科技有限公司独家
//   提供。上海商创网络科技有限公司拥有在不事先通知的情况下，修改授权协议的权力，修改后的协议对
//   改变之日起的新授权用户生效。电子文本形式的授权协议如同双方书面签署的协议一样，具有完全的和
//   等同的法律效力。您一旦开始修改、安装或使用本产品，即被视为完全理解并接受本协议的各项条款，
//   在享有上述条款授予的权力的同时，受到相关的约束和限制。协议许可范围以外的行为，将直接违反本
//   授权协议并构成侵权，我们有权随时终止授权，责令停止损害，并保留追究相关责任的权力。
//
//  ---------------------------------------------------------------------------------
//
defined('IN_ECJIA') or exit('No permission resources.');

class wechat_method {
	
	protected static $error_codes = array(
		'-1' => '系统繁忙，此时请开发者稍候再试',
		'0' =>'请求成功', 	
		'40001' => '获取access_token时AppSecret错误，或者access_token无效。请开发者认真比对AppSecret的正确性，或查看是否正在为恰当的公众号调用接口',
		'40002' => '不合法的凭证类型', 	
		'40003' => '不合法的OpenID，请开发者确认OpenID（该用户）是否已关注公众号，或是否是其他公众号的OpenID', 	
		'40004' => '不合法的媒体文件类型',
		'40005' => '不合法的文件类型',
		'40006' => '不合法的文件大小',
		'40007' => '不合法的媒体文件id',
		'40008' => '不合法的消息类型',
		'40009' => '不合法的图片文件大小',
		'40010' => '不合法的语音文件大小',
		'40011' => '不合法的视频文件大小',
		'40012' => '不合法的缩略图文件大小', 	
		'40013' => '不合法的AppID，请开发者检查AppID的正确性，避免异常字符，注意大小写',	
		'40014' => '不合法的access_token，请开发者认真比对access_token的有效性（如是否过期），或查看是否正在为恰当的公众号调用接口', 	
		'40015' => '不合法的菜单类型',	
		'40016' => '不合法的按钮个数', 	
		'40017' => '不合法的按钮个数', 	
		'40018' => '不合法的按钮名字长度', 	
		'40019' => '不合法的按钮KEY长度', 	
		'40020' => '不合法的按钮URL长度', 	
		'40021' => '不合法的菜单版本号', 	
		'40022' => '不合法的子菜单级数',	
		'40023' => '不合法的子菜单按钮个数',
		'40024' => '不合法的子菜单按钮类型', 	
		'40025' => '不合法的子菜单按钮名字长度',	
		'40026' => '不合法的子菜单按钮KEY长度',	
		'40027' => '不合法的子菜单按钮URL长度', 	
		'40028' => '不合法的自定义菜单使用用户', 	
		'40029' => '不合法的oauth_code', 	
		'40030' => '不合法的refresh_token', 	
		'40031' => '不合法的openid列表', 	
		'40032' => '不合法的openid列表长度', 	
		'40033' => '不合法的请求字符，不能包含\uxxxx格式的字符',	
		'40035' => '不合法的参数',	
		'40038' => '不合法的请求格式', 	
		'40039' => '不合法的URL长度', 	
		'40050' => '不合法的分组id', 	
		'40051' => '分组名字不合法', 	
		'40117' => '分组名字不合法', 	
		'40118' => 'media_id大小不合法',
		'40119' => 'button类型错误',	
		'40120' => 'button类型错误', 	
		'40121' => '不合法的media_id类型',	
		'40132' => '微信号不合法',	
		'40137' => '不支持的图片格式',	
		'41001' => '缺少access_token参数',	
		'41002' => '缺少appid参数',	
		'41003' => '缺少refresh_token参数', 	
		'41004' => '缺少secret参数',	
		'41005' => '缺少多媒体文件数据', 	
		'41006' => '缺少media_id参数',	
		'41007' => '缺少子菜单数据',	
		'41008' => '缺少oauth code',	
		'41009' => '缺少openid',	
		'42001' => 'access_token超时，请检查access_token的有效期，请参考基础支持-获取access_token中，对access_token的详细机制说明',	
		'42002' => 'refresh_token超时', 	
		'42003' => 'oauth_code超时',	
		'43001' => '需要GET请求',	
		'43002' => '需要POST请求',	
		'43003' => '需要HTTPS请求',	
		'43004' => '需要接收者关注',	
		'43005' => '需要好友关系',	
		'44001' => '多媒体文件为空',	
		'44002' => 'POST的数据包为空',	
		'44003' => '图文消息内容为空', 	
		'44004' => '文本消息内容为空',	
		'45001' => '多媒体文件大小超过限制',	
		'45002' => '消息内容超过限制',	
		'45003' => '标题字段超过限制',	
		'45004' => '描述字段超过限制',
		'45005' => '链接字段超过限制', 	
		'45006' => '图片链接字段超过限制',	
		'45007' => '语音播放时间超过限制',	
		'45008' => '图文消息超过限制',	
		'45009' => '接口调用超过限制',	
		'45010' => '创建菜单个数超过限制',
		'45015' => '回复时间超过限制',	
		'45016' => '系统分组，不允许修改',
		'45017' => '分组名字过长',	
		'45018' => '分组数量超过上限',	
		'46001' => '不存在媒体数据',	
		'46002' => '不存在的菜单版本',	
		'46003' => '不存在的菜单数据',	
		'46004' => '不存在的用户',	
		'47001' => '解析JSON/XML内容错误',	
		'48001' => 'api功能未授权，请确认公众号已获得该接口，可以在公众平台官网-开发者中心页中查看接口权限',	
		'50001' => '用户未授权该api',	
		'50002' => '用户受限，可能是违规后接口被封禁',	
		'61451' => '参数错误(invalid parameter)',	
		'61452' => '无效客服账号(invalid kf_account)',	
		'61453' => '客服帐号已存在(kf_account exsited)',	
		'61454' => '客服帐号名长度超过限制(仅允许10个英文字符，不包括@及@后的公众号的微信号)(invalid kf_acount length)',	
		'61455' => '客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account)',	
		'61456' => '客服帐号个数超过限制(10个客服账号)(kf_account count exceeded)',	
		'61457' => '无效头像文件类型(invalid file type)',	
		'61450' => '系统错误(system error)',	
		'61500' => '日期格式错误',	
		'61501' => '日期范围错误',	
		'9001001' => 'POST数据参数不合法',	
		'9001002' => '远端服务不可用',	
		'9001003' => 'Ticket不合法',	
		'9001004' => '获取摇周边用户信息失败',	
		'9001005' => '获取商户信息失败',	
		'9001006' => '获取OpenID失败',	
		'9001007' => '上传文件缺失',	
		'9001008' => '上传素材的文件类型不合法',	
		'9001009' => '上传素材的文件尺寸不合法',	
		'9001010' => '上传失败',	
		'9001020' => '帐号不合法',	
		'9001021' => '已有设备激活率低于50%，不能新增设备',	
		'9001022' => '设备申请数不合法，必须为大于0的数字',	
		'9001023' => '已存在审核中的设备ID申请',	
		'9001024' => '一次查询设备ID数量不能超过50',	
		'9001025' => '设备ID不合法',	
		'9001026' => '页面ID不合法',	
		'9001027' => '页面参数不合法',	
		'9001028' => '一次删除页面ID数量不能超过10',	
		'9001029' => '页面已应用在设备中，请先解除应用关系再删除',	
		'9001030' => '一次查询页面ID数量不能超过50',	
		'9001031' => '时间区间不合法',	
		'9001032' => '保存设备与页面的绑定关系参数错误',	
		'9001033' => '门店ID不合法',	
		'9001034' => '设备备注信息过长',	
		'9001035' => '设备申请参数不合法',	
		'9001036' => '查询起始值begin不合法 ' 	
	);
	
	public static function wechat_error($code) {
		$code = str_replace('wechat_error_', '', $code);
		if (isset(self::$error_codes[$code])) {
			return self::$error_codes[$code];
		}
		return null;
	}
	
    public static function wechat_instance($uuid) {
        RC_Loader::load_app_class('platform_account', 'platform', false);
        $platform_account = platform_account::make($uuid);
        $platform         = $platform_account->getPlatform();
        $account          = $platform_account->getAccount();
        
        if ($platform == 'wechat') {
            $config = array(
                'token'     => $account['token'],
                'appid'     => $account['appid'],
                'appsecret' => $account['appsecret'],
                'aeskey'    => $account['aeskey'],
            );
            $wechat = new Component_WeChat_WeChat($config);
            return $wechat;
        }
    	return null;
    }
    
    public static function wechat_id($uuid = null) {
        if (!$uuid) {
            $uuid = trim($_GET['uuid']);
        }
        $account = platform_account::make($uuid);
        $wechat_id = $account->getAccountID();
        return $wechat_id;
    }
    
    public static function record_msg($fromusername, $keywords, $iswechat = 0){
    	$wechatuser_db = RC_Loader::load_app_model('wechat_user_model', 'wechat');
    	$wechat_custom_message_db = RC_Loader::load_app_model('wechat_custom_message_model', 'wechat');
    
    	$uid = $wechatuser_db->where(array('openid'=>$fromusername))->get_field('uid');
    	if ($uid) {
    		$data = array(
    			'uid'  	     => $uid,
    			'msg'  	     => $keywords,
    			'send_time'  => RC_Time::gmtime(),
    			'iswechat'   => 0,
    		);
    		//是公众号回复
    		if($iswechat){
    			$data['iswechat'] = 1;
    		}
    		$wechat_custom_message_db->insert($data);
    	}
    }

}

// end